class Solution0204 {
    class ListNode {
      int val;
      ListNode next;
      ListNode() {}
      ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }
    public ListNode partition(ListNode head, int x) {
        if(head == null || head.next == null) return head ;
          ListNode h1 = new ListNode() ;
          ListNode h2 = new ListNode() ;
          ListNode e1 = h1 ;
          ListNode e2 = h2 ;
          ListNode cur = head ;
          while(cur != null){
             if(cur.val < x){
              e1.next = cur ;
              e1 = e1.next ;
             }else{
               e2.next = cur ;
               e2 = e2.next ;
             }
            cur = cur.next ;
          }
         e2.next = null ; 
         e1.next = h2.next ;
         return h1.next ;
    }
}